home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / 福袋 / 注釈付ヘッダ / CONSOLE.H next >
Text File  |  1994-02-20  |  9KB  |  329 lines

  1. /*
  2.  * console.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
  3.  */
  4. #ifndef __CONSOLE_H
  5. #define __CONSOLE_H
  6.  
  7. #ifndef __SXDEF2_H
  8. #include <sxdef2.h>
  9. #endif
  10.  
  11. #ifdef FORWORD
  12. #define __PROTO_TYPE
  13. #endif
  14. #ifdef __STDC__
  15. #define __PROTO_TYPE
  16. #endif
  17.  
  18. typedef enum KeyCode    KeyCode;    /* キーコード            */
  19.  
  20. typedef struct Mouse    Mouse;        /* マウスレコード        */
  21. typedef struct MsCsr    MsCsr;        /* ポインタレコード        */
  22. typedef struct AryQue    AryQue;        /* 配列キューバッファ        */
  23. typedef struct KBoard    KBoard;        /* キーボードレコード        */
  24. typedef struct Key    Key;        /* キーレコード            */
  25. /*
  26.  *    マウスマン (Mouse Man)
  27.  */
  28. struct Mouse {                /* マウスレコード        */
  29.     Bitmap *bmap;            /* ビットマップポインタ        */
  30.     short multi;            /* マウスポインタの移動係数    */
  31.     char rvsSwitch;            /* 左利き用マウスフラグ        */
  32.     char rvsForBack;        /* 前後逆転フラグ        */
  33.     char rvsLeftRight;        /* 左右逆転フラグ        */
  34.     unsigned long nowPosition;    /* リアルタイムなポインタ座標    */
  35.     struct MsSwitch {
  36.         char leftSw;        /* 左ボタンの状態        */
  37.         char rightSw;        /* 右ボタンの状態        */
  38.     } nowSwitch;            /* リアルタイムなボタンの状態    */
  39.     unsigned long thePosition;    /* 現在のポインタ座標        */
  40.     struct MsSwitch theSwitch;    /* 現在のボタンの状態        */
  41.     short deltaX;            /* X変位            */
  42.     short deltaY;            /* Y変位            */
  43.     short restX;            /* X変位×multi/256        */
  44.     short restY;            /* Y変位×multi/256        */
  45.     unsigned long oldPosition;    /* 前回のポインタ座標        */
  46.     struct MsSwitch oldSwitch;    /* 前回のボタンの状態        */
  47.     long cache;            /* ビットキャッシュ        */
  48.     MsCsr **csrHdl;            /* マウスポインタへのハンドル    */
  49.     short bits;            /* テキストにマウスを書くページ    */
  50.     short csrLvl;            /* ポインタレベル        */
  51.     short drawing;            /* ドローフラグ            */
  52.     char cached;            /* ビットキャッシュフラグ    */
  53. };
  54.  
  55. struct MsCsr {                /* ポインタレコード        */
  56.     Point hotSpot;            /* ホットスポットの座標        */
  57.     BitImg mask[16];        /* マスクパターン(16×16ドット)*/
  58.     BitImg pattern[4][16];        /* ポインタパターン(テキストタイプ、
  59.                        4ページ、16×16ドット)    */
  60. };
  61. /*
  62.  *    キーボードマン (Keyboard Man)
  63.  */
  64. /* キーボードフラグ */
  65. #define KB_HALT        1        /* [OPT.1]と[XF2]を共通にする    */
  66. #define KB_RESETON    (1 << 1)    /* キーリセットで終了する    */
  67. #define KB_OLDON    (1 << 2)    /* 以前の処理アドレスを呼ぶ    */
  68. #define KB_LEDON    (1 << 3)    /* LED制御            */
  69. #define KB_CLICKON    (1 << 4)    /* クリック音            */
  70. #define KB_REPEATON    (1 << 5)    /* キーリピート            */
  71. #define KB_ASSIGNON    (1 << 6)    /* キーアサイン            */
  72.  
  73. enum KeyCode {                /* キーコード        */
  74.     K_ESC        =  0x01,    /* [ESC]キー        */
  75.     K_1,                /* [1]キー        */
  76.     K_2,                /* [2]キー        */
  77.     K_3,                /* [3]キー        */
  78.     K_4,                /* [4]キー        */
  79.     K_5,                /* [5]キー        */
  80.     K_6,                /* [6]キー        */
  81.     K_7,                /* [7]キー        */
  82.     K_8,                /* [8]キー        */
  83.     K_9,                /* [9]キー        */
  84.     K_0,                /* [0]キー        */
  85.     K_MINUS,            /* [-]キー        */
  86.     K_CARET,            /* [^]キー        */
  87.     K_YEN,                /* [\]キー        */
  88.     K_BS,                /* [BS]キー        */
  89.     K_TAB,        /* 0x10 */    /* [TAB]キー        */
  90.     K_Q,                /* [Q]キー        */
  91.     K_W,                /* [W]キー        */
  92.     K_E,                /* [E]キー        */
  93.     K_R,                /* [R]キー        */
  94.     K_T,                /* [T]キー        */
  95.     K_Y,                /* [Y]キー        */
  96.     K_U,                /* [U]キー        */
  97.     K_I,                /* [I]キー        */
  98.     K_O,                /* [O]キー        */
  99.     K_P,                /* [P]キー        */
  100.     K_AT,                /* [@]キー        */
  101.     K_LBRACK,            /* '['キー        */
  102.     K_CR,                /* [CR]キー        */
  103.     K_A,                /* [A]キー        */
  104.     K_S,                /* [S]キー        */
  105.     K_D,        /* 0x20 */    /* [D]キー        */
  106.     K_F,                /* [F]キー        */
  107.     K_G,                /* [G]キー        */
  108.     K_H,                /* [H]キー        */
  109.     K_J,                /* [J]キー        */
  110.     K_K,                /* [K]キー        */
  111.     K_L,                /* [L]キー        */
  112.     K_SEMI,                /* [;]キー        */
  113.     K_COLON,            /* [:]キー        */
  114.     K_RBRACK,            /* ']'キー        */
  115.     K_Z,                /* [Z]キー        */
  116.     K_X,                /* [X]キー        */
  117.     K_C,                /* [C]キー        */
  118.     K_V,                /* [V]キー        */
  119.     K_B,                /* [B]キー        */
  120.     K_N,                /* [N]キー        */
  121.     K_M,        /* 0x30 */    /* [M]キー        */
  122.     K_COMMA,            /* [,]キー        */
  123.     K_PERIOD,            /* [.]キー        */
  124.     K_SLASH,            /* [/]キー        */
  125.     K__,                /* [_]キー        */
  126.     K_SPACE,            /* [ ]キー        */
  127.     K_HOME,                /* [HOME]キー        */
  128.     K_DEL,                /* [DEL]キー        */
  129.     K_RUP,                /* [ROLL UP]キー    */
  130.     K_RDOWN,            /* [ROLL DOWN]キー    */
  131.     K_UNDO,                /* [UNDO]キー        */
  132.     K_LEFT,                /* [←]キー        */
  133.     K_UP,                /* [↑]キー        */
  134.     K_RIGHT,            /* [→]キー        */
  135.     K_DOWN,                /* [↓]キー        */
  136.     K_CLR,                /* [CLR]キー        */
  137.     KT_SLASH,    /* 0x40 */    /* テンキーの[/]キー    */
  138.     KT_ASTERI,            /* テンキーの[*]キー    */
  139.     KT_MINUS,            /* テンキーの[-]キー    */
  140.     KT_7,                /* テンキーの[7]キー    */
  141.     KT_8,                /* テンキーの[8]キー    */
  142.     KT_9,                /* テンキーの[9]キー    */
  143.     KT_PLUS,            /* テンキーの[+]キー    */
  144.     KT_4,                /* テンキーの[4]キー    */
  145.     KT_5,                /* テンキーの[5]キー    */
  146.     KT_6,                /* テンキーの[6]キー    */
  147.     KT_EQUAL,            /* テンキーの[=]キー    */
  148.     KT_1,                /* テンキーの[1]キー    */
  149.     KT_2,                /* テンキーの[2]キー    */
  150.     KT_3,                /* テンキーの[3]キー    */
  151.     K_ENTER,            /* [ENTER]キー        */
  152.     KT_0,                /* テンキーの[0]キー    */
  153.     KT_COMMA,    /* 0x50 */    /* テンキーの[,]キー    */
  154.     KT_PERIOD,            /* テンキーの[.]キー    */
  155.     K_KIGO,                /* [記号入力]キー    */
  156.     K_TOROKU,            /* [登録]キー        */
  157.     K_HELP,                /* [HELP]キー        */
  158.     K_XF1,                /* [XF1]キー        */
  159.     K_XF2,                /* [XF2]キー        */
  160.     K_XF3,                /* [XF3]キー        */
  161.     K_XF4,                /* [XF4]キー        */
  162.     K_XF5,                /* [XF5]キー        */
  163.     K_KANA,                /* [かな]キー        */
  164.     K_ROMAJI,            /* [ローマ字]キー    */
  165.     K_CODEIN,            /* [コード入力]キー    */
  166.     K_CAPS,                /* [CAPS]キー        */
  167.     K_INS,                /* [INS]キー        */
  168.     K_HIRA,                /* [ひらがな]キー    */
  169.     K_ZEN,        /* 0x60 */    /* [全角]キー        */
  170.     K_BREAK,            /* [BREAK]キー        */
  171.     K_COPY,                /* [COPY]キー        */
  172.     K_F1,                /* [F1]キー        */
  173.     K_F2,                /* [F2]キー        */
  174.     K_F3,                /* [F3]キー        */
  175.     K_F4,                /* [F4]キー        */
  176.     K_F5,                /* [F5]キー        */
  177.     K_F6,                /* [F6]キー        */
  178.     K_F7,                /* [F7]キー        */
  179.     K_F8,                /* [F8]キー        */
  180.     K_F9,                /* [F9]キー        */
  181.     K_F10,                /* [F10]キー        */
  182.     K_SHIFT        =  0x70,    /* [SHIFT]キー        */
  183.     K_CTRL,                /* [CTRL]キー        */
  184.     K_OPT1,                /* [OPT.1]キー        */
  185.     K_OPT2                /* [OPT.2]キー        */
  186. };
  187.  
  188. struct AryQue {                /* 配列キューバッファ    */
  189.     short size;            /* 要素のサイズ        */
  190.     short count;            /* 要素の数        */
  191.     void *start;            /* バッファの先頭    */
  192.     void *read;            /* 次に読むデータの位置    */
  193.     void *write;            /* 次に書く位置        */
  194. };
  195.  
  196. struct KBoard {                /* キーボードレコード    */
  197.     AryQue keyBuf;            /* キーバッファ        */
  198.     unsigned long shiftKey;        /* シフトキービット    */
  199.     short data;            /* スキャンデータ    */
  200.     char flag[16];            /* キーボードフラグ    */
  201.     char pad[10];
  202.     char map[128];            /* キーマップ        */
  203.     char assign[128];        /* キーアサインテーブル    */
  204. };
  205. /*
  206.  *    キーマン (Key Man)
  207.  */
  208. struct Key {                /* キーレコード            */
  209.     AryQue msgQue;            /* メッゼージキューバッファ    */
  210.     unsigned long shiftKey;        /* シフトキービット        */
  211.     char *map;            /* キーマップへのポインタ    */
  212.     KBoard *kbr;            /* キーボードレコードへのポインタ */
  213.     void *ascJob;
  214.     void *cacheA;
  215.     void *cacheK;
  216.     void *cacheM;
  217. };
  218.  
  219. #ifdef __PROTO_TYPE
  220. /*
  221.  *    エクセプションマン (Exception Man)
  222.  */
  223. int EXEnVDISPST(void (*)(void));
  224. int EXDeVDISPST(void (*)(void));
  225. /*
  226.  *    マウスマン (Mouse Man)
  227.  */
  228. void MSInitCsr(void);
  229. void MSShowCsr(void);
  230. void MSHideCsr(void);
  231. void MSSetCsr(MsCsr **);
  232. void MSObscureCsr(void);
  233. void MSShieldCsr(Rect *, LPoint);
  234. Mouse *MSGetCurMsr(void);
  235. long MSMultiGet(void);
  236. long MSMultiSet(long);
  237. /*
  238.  *    アニメーションマン (Animation Man)
  239.  */
  240. int EXAnimStart(int, int, MsCsr ***);
  241. int EXAnimEnd(void);
  242. BOOLEAN EXAnimTest(void);
  243. /*
  244.  *    キーボードマン (Keyboard Man)
  245.  */
  246. char *KBMapGet(KBoard *);
  247. long KBShiftGet(KBoard *);
  248. long KBShiftSet(KBoard *, long);
  249. int KBSimulate(KBoard *, long);
  250. int KBScan(KBoard *);
  251. int KBGet(KBoard *);
  252. void KBEmpty(KBoard *);
  253. KBoard *KBInit(int, int);
  254. void KBTini(KBoard *);
  255. KBoard *KBCurKbrGet(void);
  256. BOOLEAN KBOldOnGet(KBoard *);
  257. BOOLEAN KBOldOnSet(KBoard *, BOOLEAN);
  258. int KBFlagGet(KBoard *);
  259. int KBFlagSet(KBoard *, int);
  260. /*
  261.  *    キーマン (Key Man)
  262.  */
  263. void KMEmpty(Key *);
  264. int KMPost(Key *, int, int);
  265. int (*KMAscJobSet(Key *, int (*)(void)))(void);
  266. int KMSimulate(Key *, int);
  267. void KMTask(Key *);
  268. Key *KMInit(long);
  269. void KMTini(Key *);
  270. Key *KMCurKmrGet(void);
  271.  
  272. #undef __PROTO_TYPE
  273. #else
  274. /*
  275.  *    エクセプションマン (Exception Man)
  276.  */
  277. int EXEnVDISPST();
  278. int EXDeVDISPST();
  279. /*
  280.  *    マウスマン (Mouse Man)
  281.  */
  282. void MSInitCsr();
  283. void MSShowCsr();
  284. void MSHideCsr();
  285. void MSSetCsr();
  286. void MSObscureCsr();
  287. void MSShieldCsr();
  288. Mouse *MSGetCurMsr();
  289. long MSMultiGet();
  290. long MSMultiSet();
  291. /*
  292.  *    アニメーションマン (Animation Man)
  293.  */
  294. int EXAnimStart();
  295. int EXAnimEnd();
  296. BOOLEAN EXAnimTest();
  297. /*
  298.  *    キーボードマン (Keyboard Man)
  299.  */
  300. char *KBMapGet();
  301. long KBShiftGet();
  302. long KBShiftSet();
  303. int KBSimulate();
  304. int KBScan();
  305. int KBGet();
  306. void KBEmpty();
  307. KBoard *KBInit();
  308. void KBTini();
  309. KBoard *KBCurKbrGet();
  310. int KBOldOnGet();
  311. int KBOldOnSet();
  312. int KBFlagGet();
  313. int KBFlagSet();
  314. /*
  315.  *    キーマン (Key Man)
  316.  */
  317. void KMEmpty();
  318. int KMPost();
  319. int (*KMAscJobSet())();
  320. int KMSimulate();
  321. void KMTask();
  322. Key *KMInit();
  323. void KMTini();
  324. Key *KMCurKmrGet();
  325.  
  326. #endif __PROTO_TYPE
  327.  
  328. #endif __CONSOLE_H
  329.